React Fiber ã¢ãŒããã¯ãã£ã®æ·±æãïŒã¯ãŒã¯ã«ãŒããã¹ã±ãžã¥ãŒã©é£æºãã°ããŒãã«ãªãŠãŒã¶ãŒäœéšã®ããã®åªå 床ãã¥ãŒã®åœ¹å²ã
React ããã©ãŒãã³ã¹ã®è§£æïŒFiber ã¯ãŒã¯ã«ãŒããã¹ã±ãžã¥ãŒã©é£æºãåªå 床ãã¥ãŒ
ããã³ããšã³ãéçºã®é²åãç¶ããç¶æ³ã«ãããŠãããã©ãŒãã³ã¹ã¯åãªãæ©èœã§ã¯ãªããåºæ¬çãªæåŸ ã§ãã倿§ãªããã€ã¹ããããã¯ãŒã¯æ¡ä»¶ã§ãäžçäžã®äœçŸäžäººãã®ãŠãŒã¶ãŒã䜿çšããã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠãã¹ã ãŒãºã§å¿çæ§ã®é«ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ïŒUIïŒã®å®çŸã¯æéèŠã§ããUIæ§ç¯ã®ããã®äž»èŠãª JavaScript ã©ã€ãã©ãªã§ãã React ã¯ããã®èª²é¡ã«å¯ŸåŠããããã«å€§å¹ ãªã¢ãŒããã¯ãã£ã®å€æŽãçµãŸããããããã®æ¹åã®äžå¿ã«ããã®ããReact Fiber ã¢ãŒããã¯ãã£ã§ããããã¯ããªã³ã³ãµã€ãªãšãŒã·ã§ã³ã¢ã«ãŽãªãºã ã®å®å šãªæžãçŽãã§ãããã®èšäºã§ã¯ãReact Fiber ã®ã¯ãŒã¯ã«ãŒãã®è€éããã¹ã±ãžã¥ãŒã©ãšã®ã·ãŒã ã¬ã¹ãªé£æºããããŠã°ããŒãã«ãªãŠãŒã¶ãŒã«ããã©ãŒãã³ã¹ãé«ãæµæ¢ãªãŠãŒã¶ãŒäœéšãæäŸããããã®åªå 床ãã¥ãŒã®éèŠãªåœ¹å²ãæãäžããŠãããŸãã
React ã¬ã³ããªã³ã°ã®é²åïŒã¹ã¿ãã¯ãã Fiber ãž
Fiber ç»å Žä»¥åãReact ã®ã¬ã³ããªã³ã°ããã»ã¹ã¯ååž°çãªã³ãŒã«ã¹ã¿ãã¯ã«åºã¥ããŠããŸãããã³ã³ããŒãã³ããæŽæ°ããããšãReact ã¯ã³ã³ããŒãã³ãããªãŒããã©ããUI 倿Žã®èª¬æãæ§ç¯ããŸããããã®ããã»ã¹ã¯å€ãã®ã¢ããªã±ãŒã·ã§ã³ã§å¹æçã§ããããéèŠãªå¶éããããŸãããããã¯åæçã§ããããã³ã°ããããšããããšã§ãããå€§èŠæš¡ãªæŽæ°ãçºçããããè€éãªã³ã³ããŒãã³ãããªãŒãã¬ã³ããªã³ã°ããå¿ èŠãããå Žåãã¡ã€ã³ã¹ã¬ãããéè² è·ã«ãªããç¹ã«å€ãã®ã°ããŒãã«åžå Žã§äžè¬çãªäœæ§èœããã€ã¹ã§ã®ãããã¡ãªãã¢ãã¡ãŒã·ã§ã³ãå¿çããªãã€ã³ã¿ã©ã¯ã·ã§ã³ããããŠå£æªãªãŠãŒã¶ãŒäœéšã«ã€ãªããå¯èœæ§ããããŸããã
åœéçã«äœ¿çšããã e ã³ããŒã¹ã¢ããªã±ãŒã·ã§ã³ã§ããããã·ããªãªãèããŠã¿ãŸãããããŠãŒã¶ãŒãè€éãªè£œåãã£ã«ã¿ãŒãæäœããå Žé¢ã§ããå€ãã¹ã¿ãã¯ããŒã¹ã®ãªã³ã³ãµã€ãªãšãŒã·ã§ã³ã§ã¯ãè€æ°ã®ãã£ã«ã¿ãŒãåæã«é©çšãããšããã¹ãŠã®æŽæ°ãå®äºãããŸã§ UI ãããªãŒãºããå¯èœæ§ããããŸãããããã¯ã©ã®ãŠãŒã¶ãŒã«ãšã£ãŠããã©ã¹ãã¬ãŒã·ã§ã³ãæºãŸãããšã§ãããã€ã³ã¿ãŒãããæ¥ç¶ãä¿¡é Œæ§ã®äœãå°åããããã€ã¹ã®ããã©ãŒãã³ã¹ãããæžå¿µãããå°åã§ã¯ç¹ã«åœ±é¿ã倧ããã§ãã
React Fiber ã¯ãåæå®è¡ã¬ã³ããªã³ã°ãå¯èœã«ããããšã§ããããã®å¶éã«å¯ŸåŠããããã«å°å ¥ãããŸãããå€ãã¹ã¿ãã¯ãšã¯ç°ãªããFiber 㯠åå ¥å¯èœã§ãéåæã§ãäžæå¯èœãªãªã³ã³ãµã€ãªãšãŒã·ã§ã³ã¢ã«ãŽãªãºã ã§ããããã¯ãReact ãã¬ã³ããªã³ã°ãäžæåæ¢ããä»ã®ã¿ã¹ã¯ãå®è¡ãããã®åŸã¡ã€ã³ã¹ã¬ããããããã¯ããããšãªããåŸã§ã¬ã³ããªã³ã°ãåéã§ããããšãæå³ããŸãã
Fiber ããŒãã®ç޹ä»ïŒããåšçšãªäœæ¥åäœ
ãã®æ žå¿ã«ãããŠãReact Fiber ã¯äœæ¥åäœãã³ã³ããŒãã³ãã€ã³ã¹ã¿ã³ã¹ãã Fiber ããŒãã«åå®çŸ©ããŸãããFiber ããŒãããå®è¡ãããã¹ãäœæ¥åäœã衚ã JavaScript ãªããžã§ã¯ããšèããŠãã ãããReact ã¢ããªã±ãŒã·ã§ã³ã®åã³ã³ããŒãã³ãã«ã¯ã察å¿ãã Fiber ããŒãããããŸãããããã®ããŒãã¯ãªã³ã¯ãããã³ã³ããŒãã³ãããªãŒããã©ãŒãªã³ã°ããããªãŒã圢æããŸãããæ°ããã¬ã³ããªã³ã°ã¢ãã«ãä¿é²ããããã®è¿œå ããããã£ãæã£ãŠããŸãã
Fiber ããŒãã®äž»ãªããããã£ã¯ä»¥äžã®éãã§ãã
- Type: èŠçŽ ã®ã¿ã€ãïŒäŸïŒé¢æ°ã³ã³ããŒãã³ããã¯ã©ã¹ã³ã³ããŒãã³ããæååãDOM èŠçŽ ïŒã
- Key: ãªã¹ãã¢ã€ãã ã®ãŠããŒã¯ãªèå¥åãå¹ççãªæŽæ°ã«äžå¯æ¬ ã§ãã
- Child: æåã®å Fiber ããŒããžã®ãã€ã³ã¿ã
- Sibling: 次ã®å åŒ Fiber ããŒããžã®ãã€ã³ã¿ã
- Return: 芪 Fiber ããŒããžã®ãã€ã³ã¿ã
- MemoizedProps: ååã®ã¬ã³ããªã³ã°ãã¡ã¢åããããã«äœ¿çšããã propsã
- MemoizedState: ååã®ã¬ã³ããªã³ã°ãã¡ã¢åããããã«äœ¿çšããã stateã
- Alternate: ããäžæ¹ã®ããªãŒïŒçŸåšã®ããªãŒãŸãã¯äœæ¥äžã®ããªãŒïŒã®å¯Ÿå¿ãã Fiber ããŒããžã®ãã€ã³ã¿ãããã¯ãReact ãã¬ã³ããªã³ã°ç¶æ ãåãæ¿ããæ¹æ³ã®åºæ¬ã§ãã
- Flags: ãã® Fiber ããŒãã§å®è¡ãããã¹ãäœæ¥ã®çš®é¡ã瀺ãããããã¹ã¯ïŒäŸïŒprops ã®æŽæ°ããšãã§ã¯ãã®è¿œå ãããŒãã®åé€ïŒã
- Effects: ã©ã€ããµã€ã¯ã«ã¡ãœãããããã¯ãªã©ã®ããã® Fiber ããŒãã«é¢é£ä»ãããããšãã§ã¯ãã®ãªã¹ãã
Fiber ããŒãã¯ãã³ã³ããŒãã³ãã€ã³ã¹ã¿ã³ã¹ãããã§ãã£ãããã«ãJavaScript ã®ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«ãã£ãŠçŽæ¥ç®¡çãããããã§ã¯ãããŸããã代ããã«ãReact ãå¹ççã«ãã©ãããšãã§ãããªã³ã¯ãªã¹ãã圢æããŸãããã®æ§é ã«ãããReact ã¯äœæ¥ãç°¡åã«ç®¡çããäžæããããšãã§ããŸãã
React Fiber ã¯ãŒã¯ã«ãŒãïŒã¬ã³ããªã³ã°ããã»ã¹ã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³
React Fiber ã®åæå®è¡æ§ã®å¿èéšã¯ããã® ã¯ãŒã¯ã«ãŒãã§ãããã®ã«ãŒãã¯ãFiber ããªãŒããã©ããäœæ¥ãå®è¡ããå®äºãã倿Žã DOM ã«ã³ããããã責任ãè² ããŸãããã®ã«ãŒããé©åœçã«ããŠããã®ã¯ãäžæåæ¢ããã³åéã§ããèœåã§ãã
ã¯ãŒã¯ã«ãŒãã¯ã倧ãã 2 ã€ã®ãã§ãŒãºã«åããããŸãã
1. ã¬ã³ããªã³ã°ãã§ãŒãºïŒäœæ¥äžããªãŒïŒ
ãã®ãã§ãŒãºã§ã¯ãReact ã¯ã³ã³ããŒãã³ãããªãŒããã©ããFiber ããŒãã§äœæ¥ãå®è¡ããŸãããã®äœæ¥ã«ã¯ä»¥äžãå«ãŸããå¯èœæ§ããããŸãã
- ã³ã³ããŒãã³ã颿°ãŸã㯠`render()` ã¡ãœããã®åŒã³åºãã
- props ãš state ã®ãªã³ã³ãµã€ã«ã
- Fiber ããŒãã®äœæãŸãã¯æŽæ°ã
- å¯äœçšïŒäŸïŒ`useEffect`ã`componentDidMount`ïŒã®ç¹å®ã
ã¬ã³ããªã³ã°ãã§ãŒãºäžãReact ã¯äœæ¥äžããªãŒãæ§ç¯ããŸããããã¯ãUI ã®å¯èœæ§ã®ããæ°ããç¶æ ã衚ã Fiber ããŒãã®å¥ã®ããªãŒã§ããéèŠãªã®ã¯ãã¯ãŒã¯ã«ãŒãã¯ãã®ãã§ãŒãºäžã«äžæå¯èœã§ãããšããããšã§ããããåªå 床ã®é«ãã¿ã¹ã¯ïŒäŸïŒãŠãŒã¶ãŒå ¥åïŒãçºçããå ŽåãReact ã¯çŸåšã®ã¬ã³ããªã³ã°äœæ¥ãäžæåæ¢ããæ°ããã¿ã¹ã¯ãåŠçãããã®åŸäžæãããäœæ¥ãåŸã§åéã§ããŸãã
ãã®äžæå¯èœæ§ã¯ãã¹ã ãŒãºãªäœéšãå®çŸããããã®éµã§ããåœéçãªæ è¡ãµã€ãã§æ€çŽ¢ããŒã«æåãå ¥åããŠãããŠãŒã¶ãŒãæ³åããŠãã ãããReact ããµãžã§ã¹ããªã¹ãã®ã¬ã³ããªã³ã°ã«å¿ããéã«æ°ããããŒã¹ãããŒã¯ãå°çããå Žåããµãžã§ã¹ãã¬ã³ããªã³ã°ãäžæåæ¢ããããŒã¹ãããŒã¯ãåŠçããŠæ€çŽ¢ã¯ãšãªãæŽæ°ããæ°ããå ¥åã«åºã¥ããŠãµãžã§ã¹ãã®ã¬ã³ããªã³ã°ãåéã§ããŸãããŠãŒã¶ãŒã¯ãé å»¶ã§ã¯ãªããã¿ã€ãã³ã°ã«å¯Ÿãã峿å¿çãèªèããŸãã
ã¯ãŒã¯ã«ãŒã㯠Fiber ããŒããå埩åŠçãããããã® `flags` ããã§ãã¯ããŠãã©ã®äœæ¥ãå¿ èŠãã倿ããŸããããŒããããã®åãžã次ã«å åŒãžããããŠèŠªãžæ»ããå¿ èŠãªæäœãå®è¡ããŸãããã®ãã©ããŒã¹ã¯ãä¿çäžã®ãã¹ãŠã®äœæ¥ãå®äºããããã¯ãŒã¯ã«ãŒããäžæããããŸã§ç¶ããŸãã
2. ã³ããããã§ãŒãºïŒå€æŽã®é©çšïŒ
ã¬ã³ããªã³ã°ãã§ãŒãºãå®äºããReact ãå®å®ããäœæ¥äžããªãŒãæã€ãšãã³ããããã§ãŒãºã«å ¥ããŸãããã®ãã§ãŒãºã§ã¯ãReact ã¯å¯äœçšãå®è¡ããå®éã® DOM ãæŽæ°ããŸãããã®ãã§ãŒãºã¯ãUI ãçŽæ¥æäœãããããåæçã§äžæäžå¯èœã§ããReact ã¯ãDOM ãæŽæ°ããéã«ãã¡ãã€ããäžæŽå㪠UI ç¶æ ãé¿ããããã«ãåäžã®ååçãªæäœãšããŠãããè¡ãããšãä¿èšŒããããšèããŠããŸãã
ã³ããããã§ãŒãºäžãReact ã¯ä»¥äžãå®è¡ããŸãã
- DOM æäœïŒèŠçŽ ã®è¿œå ãåé€ãæŽæ°ïŒãå®è¡ããŸãã
- `componentDidMount`ã`componentDidUpdate`ãããã³ `useEffect` ã«ãã£ãŠè¿ãããã¯ãªãŒã³ã¢ãã颿°ãªã©ã®å¯äœçšãå®è¡ããŸãã
- DOM ããŒããžã®åç §ãæŽæ°ããŸãã
ã³ããããã§ãŒãºã®åŸãäœæ¥äžããªãŒã¯çŸåšã®ããªãŒã«ãªããåŸç¶ã®æŽæ°ã®ããã«ããã»ã¹ãåã³éå§ã§ããŸãã
ã¹ã±ãžã¥ãŒã©ã®åœ¹å²ïŒäœæ¥ã®åªå é äœä»ããšã¹ã±ãžã¥ãŒãªã³ã°
Fiber ã¯ãŒã¯ã«ãŒãã®äžæå¯èœæ§ã¯ããã€äœæ¥ãå®è¡ãããããããŠã©ã®äœæ¥ãæåã«å®è¡ããããæ±ºå®ããã¡ã«ããºã ãªãã§ã¯ããŸãæçšã§ã¯ãããŸãããããã§ React ã¹ã±ãžã¥ãŒã©ãç»å ŽããŸãã
ã¹ã±ãžã¥ãŒã©ã¯ãReact ãäœæ¥ã®å®è¡ã管çããããã«äœ¿çšãããå¥åã®äœã¬ãã«ã©ã€ãã©ãªã§ãããã®äž»ãªè²¬ä»»ã¯ä»¥äžã®éãã§ãã
- äœæ¥ã®ã¹ã±ãžã¥ãŒãªã³ã°: ã¬ã³ããªã³ã°ã¿ã¹ã¯ãéå§ãŸãã¯åéããã¿ã€ãã³ã°ã決å®ããŸãã
- äœæ¥ã®åªå é äœä»ã: ç°ãªãã¿ã¹ã¯ã«åªå 床ãå²ãåœãŠãéèŠãªæŽæ°ãè¿ éã«åŠçãããããšãä¿èšŒããŸãã
- ãã©ãŠã¶ãšã®é£æº: ã¡ã€ã³ã¹ã¬ããããããã¯ããããšãé¿ãããã©ãŠã¶ããã€ã³ãããŠãŒã¶ãŒå ¥åã®åŠçãªã©ã®éèŠãªã¿ã¹ã¯ãå®è¡ã§ããããã«ããŸãã
ã¹ã±ãžã¥ãŒã©ã¯ã宿çã«ãã©ãŠã¶ã«å¶åŸ¡ãæ»ãããšã§æ©èœããä»ã®ã¿ã¹ã¯ã®å®è¡ãèš±å¯ããŸãããã®åŸããã©ãŠã¶ãã¢ã€ãã«ç¶æ ã«ãªã£ããšãããŸãã¯ããåªå 床ã®é«ãã¿ã¹ã¯ãåŠçããå¿ èŠããããšãã«ãäœæ¥ã®åéãèŠæ±ããŸãã
ãã®å調çãªãã«ãã¿ã¹ã¯ã¯ãç¹ã«ã°ããŒãã«ãªãŠãŒã¶ãŒããŒã¹ãæã€å¿çæ§ã®é«ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã«äžå¯æ¬ ã§ããã€ã³ã¿ãŒãããé床ãé ãå°åã®ãŠãŒã¶ãŒã¯ãReact ã®ã¬ã³ããªã³ã°ããã©ãŠã¶ã®ã¡ã€ã³ã¹ã¬ãããå®å šã«å æããŠããå Žåãã¢ããªã±ãŒã·ã§ã³ãéããšæããå¯èœæ§ããããŸããã¹ã±ãžã¥ãŒã©ã¯ãè²äžããããšã§ãéãã¬ã³ããªã³ã°äžã§ãããã©ãŠã¶ã¯ãŸã ãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ã«å¿çããããUI ã®éèŠãªéšåãã¬ã³ããªã³ã°ãããããŠãã¯ããã«ã¹ã ãŒãºãªç¥èŠããã©ãŒãã³ã¹ãæäŸããããšãä¿èšŒããŸãã
åªå 床ãã¥ãŒïŒåæå®è¡ã¬ã³ããªã³ã°ã®ããã¯ããŒã³
ã¹ã±ãžã¥ãŒã©ã¯ãã©ã®äœæ¥ãæåã«è¡ãããã©ã®ããã«æ±ºå®ããã®ã§ããããïŒããã§ åªå 床ãã¥ãŒ ãäžå¯æ¬ ã«ãªããŸããReact ã¯ãããŸããŸãªçš®é¡ã®æŽæ°ãç·æ¥åºŠã«åºã¥ããŠåé¡ããåæŽæ°ã«åªå 床ã¬ãã«ãå²ãåœãŠãŸãã
ã¹ã±ãžã¥ãŒã©ã¯ãåªå 床ã§äžŠã¹æ¿ããããä¿çäžã®ã¿ã¹ã¯ã®ãã¥ãŒãç¶æããŸããäœæ¥ãå®è¡ããæéã«ãªããšãã¹ã±ãžã¥ãŒã©ã¯ãã¥ãŒããæãåªå 床ã®é«ãã¿ã¹ã¯ãéžæããŸãã
以äžã¯ãåªå 床ã¬ãã«ã®å žåçãªå èš³ã§ãïŒãã ããæ£ç¢ºãªå®è£ 詳现ã¯é²åããå¯èœæ§ããããŸãïŒã
- 峿åªå 床: ããã¹ããã£ãŒã«ããžã®å ¥åãžã®å¿çãªã©ãå»¶æãããã¹ãã§ãªãç·æ¥ã®æŽæ°ããããã¯éåžžãåæçãŸãã¯éåžžã«é«ãç·æ¥åºŠã§åŠçãããŸãã
- ãŠãŒã¶ãŒãããã¯åªå 床: ã¢ãŒãã«ãã€ã¢ãã°ãããããããŠã³ã¡ãã¥ãŒã®è¡šç€ºãªã©ããŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ããããã¯ããæŽæ°ããããã¯ããŠãŒã¶ãŒããããã¯ããªãããã«è¿ éã«ã¬ã³ããªã³ã°ããå¿ èŠããããŸãã
- éåžžåªå 床: ããŒã¿ã®ååŸããªã¹ãã®ã¬ã³ããªã³ã°ãªã©ããŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ã«çŽæ¥çãªåœ±é¿ãäžããªãäžè¬çãªæŽæ°ã
- äœåªå 床: åæã€ãã³ããããã¯ã°ã©ãŠã³ãèšç®ãªã©ãå»¶æã§ããéèŠã§ãªãæŽæ°ã
- ãªãã¹ã¯ãªãŒã³åªå 床: çŸåšç»é¢ã«è¡šç€ºãããŠããªãã³ã³ããŒãã³ãïŒäŸïŒãªãã¹ã¯ãªãŒã³ã®ãªã¹ããé ãããã¿ãïŒããããã¯æãäœãåªå 床ã§ã¬ã³ããªã³ã°ãããããå¿ èŠã«å¿ããŠã¹ããããããããšãããããŸãã
ã¹ã±ãžã¥ãŒã©ã¯ãããã®åªå 床ã䜿çšããŠããã€æ¢åã®äœæ¥ãäžæãããã€åéããããæ±ºå®ããŸããããšãã°ãReact ãå€§èŠæš¡ãªæ€çŽ¢çµæãªã¹ããã¬ã³ããªã³ã°ããŠããïŒéåžžåªå 床ïŒéã«ããŠãŒã¶ãŒãå ¥åãã£ãŒã«ãã«æåãå ¥åããå ŽåïŒå³æåªå 床ïŒãã¹ã±ãžã¥ãŒã©ã¯ãªã¹ãã¬ã³ããªã³ã°ãäžæåæ¢ããå ¥åã€ãã³ããåŠçãããã®åŸæ°ããå ¥åã«åºã¥ãæŽæ°ãããããŒã¿ã䜿çšããŠãªã¹ãã¬ã³ããªã³ã°ãåéããŸãã
å®è·µçãªåœéäŸïŒ
ç°ãªã倧éžã®ããŒã ã«ãã£ãŠäœ¿çšããããªã¢ã«ã¿ã€ã ã³ã©ãã¬ãŒã·ã§ã³ããŒã«ãèããŠã¿ãŸãããããŠãŒã¶ãŒã¯ãå€§å¹ ãªã¬ã³ããªã³ã°ãå¿ èŠãšããå€§èŠæš¡ãªåã蟌ã¿ã°ã©ãã衚瀺ããŠããå¥ã®ãŠãŒã¶ãŒãããäžæ¹ã§ãããã¥ã¡ã³ããç·šéããŠããå¯èœæ§ããããŸãïŒé«åªå 床ãå³ææŽæ°ïŒãååããæ°ããã¡ãã»ãŒãžãå±ããå ŽåïŒãŠãŒã¶ãŒãããã¯åªå åºŠãæ³šæãå¿ èŠãªããïŒãã¹ã±ãžã¥ãŒã©ã¯ã¡ãã»ãŒãžéç¥ãããã«è¡šç€ºãããããã«ããã°ã©ãã¬ã³ããªã³ã°ãäžæåæ¢ãããã®åŸã¡ãã»ãŒãžãåŠçãããåŸã«ã°ã©ãã¬ã³ããªã³ã°ãåéããå¯èœæ§ããããŸãã
ãã®æŽç·Žãããåªå é äœä»ãã«ãããéèŠãªãŠãŒã¶ãŒåãæŽæ°ãåžžã«åªå ããããŠãŒã¶ãŒã®å Žæãããã€ã¹ã«é¢ä¿ãªããããå¿çæ§ãé«ãå¿«é©ãªäœéšãä¿èšŒãããŸãã
Fiber ãã¹ã±ãžã¥ãŒã©ãšé£æºããæ¹æ³
Fiber ãšã¹ã±ãžã¥ãŒã©ã®é£æºããåæå®è¡ React ãå¯èœã«ããŠããŸããã¹ã±ãžã¥ãŒã©ã¯ã¿ã¹ã¯ãè²äžããã³åéããããã®ã¡ã«ããºã ãæäŸããFiber ã®äžæå¯èœæ§ã«ãããããã®ã¿ã¹ã¯ãå°ããªäœæ¥åäœã«åå²ã§ããŸãã
以äžã¯ãããããã©ã®ããã«çžäºäœçšãããã®åçŽåããããããŒã§ãã
- æŽæ°ãçºçãã: ã³ã³ããŒãã³ãã® state ã倿Žãããããprops ãæŽæ°ãããŸãã
- ã¹ã±ãžã¥ãŒã©ãäœæ¥ãã¹ã±ãžã¥ãŒãªã³ã°ãã: ã¹ã±ãžã¥ãŒã©ã¯æŽæ°ãåãåããåªå 床ãå²ãåœãŠãŸããæŽæ°ã«å¯Ÿå¿ãã Fiber ããŒããé©åãªåªå 床ãã¥ãŒã«å ¥ããŸãã
- ã¹ã±ãžã¥ãŒã©ãã¬ã³ããªã³ã°ãèŠæ±ãã: ã¡ã€ã³ã¹ã¬ãããã¢ã€ãã«ç¶æ ãŸãã¯å®¹éãããå Žåãã¹ã±ãžã¥ãŒã©ã¯æãåªå 床ã®é«ãäœæ¥ã®å®è¡ãèŠæ±ããŸãã
- Fiber ã¯ãŒã¯ã«ãŒããéå§ãã: React ã®ã¯ãŒã¯ã«ãŒãã¯ãäœæ¥äžããªãŒã®ãã©ããŒã¹ãéå§ããŸãã
- äœæ¥ãå®è¡ããã: Fiber ããŒããåŠçããã倿Žãç¹å®ãããŸãã
- äžæ: ããåªå 床ã®é«ãã¿ã¹ã¯ãå©çšå¯èœã«ãªã£ãå ŽåïŒäŸïŒãŠãŒã¶ãŒå ¥åïŒãŸãã¯çŸåšã®äœæ¥ãç¹å®ã®æéäºç®ãè¶ ããå Žåãã¹ã±ãžã¥ãŒã©ã¯ Fiber ã¯ãŒã¯ã«ãŒããäžæã§ããŸããäœæ¥äžããªãŒã®çŸåšã®ç¶æ ãä¿åãããŸãã
- ããåªå 床ã®é«ãã¿ã¹ã¯ãåŠçããã: ã¹ã±ãžã¥ãŒã©ã¯ãæ°ããé«åªå 床ã¿ã¹ã¯ãåŠçããŸããããã«ã¯æ°ããã¬ã³ããªã³ã°ãã¹ãå«ãŸããå ŽåããããŸãã
- åé: ããåªå 床ã®é«ãã¿ã¹ã¯ãåŠçããããšãã¹ã±ãžã¥ãŒã©ã¯ä¿åãããç¶æ ã䜿çšããŠãäžæããã Fiber ã¯ãŒã¯ã«ãŒããäžæããå Žæããåéã§ããŸãã
- ã³ããããã§ãŒãº: ã¬ã³ããªã³ã°ãã§ãŒãºã§ãã¹ãŠã®åªå é äœä»ããããäœæ¥ãå®äºãããšãReact ã¯ã³ããããã§ãŒãºãå®è¡ã㊠DOM ãæŽæ°ããŸãã
ãã®çžäºäœçšã«ãããReact ã¯ããŸããŸãªæŽæ°ã®ç·æ¥åºŠãšã¡ã€ã³ã¹ã¬ããã®å¯çšæ§ã«åºã¥ããŠã¬ã³ããªã³ã°ããã»ã¹ãåçã«èª¿æŽã§ããŸãã
ã°ããŒãã«ã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠã® Fiberãã¹ã±ãžã¥ãŒã©ãåªå 床ãã¥ãŒã®å©ç¹
Fiber ãšã¹ã±ãžã¥ãŒã©ã§å°å ¥ãããã¢ãŒããã¯ãã£ã®å€æŽã¯ãç¹ã«ã°ããŒãã«ãªãŠãŒã¶ãŒããŒã¹ãæã€ã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠãé¡èãªå©ç¹ãæäŸããŸãã
- å¿çæ§ã®åäž: ã¡ã€ã³ã¹ã¬ããããããã¯ãããã®ãé²ãããšã§ãè€éãªã¬ã³ããªã³ã°ã¿ã¹ã¯äžã§ããã¢ããªã±ãŒã·ã§ã³ã¯ãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ã«è¿ éã«å¯Ÿå¿ã§ããŸããããã¯ãäžçäžã®å€ãã®å°åã§äžè¬çãªã¢ãã€ã«ããã€ã¹ãäœéãªã€ã³ã¿ãŒãããæ¥ç¶ãæã€ãŠãŒã¶ãŒã«ãšã£ãŠäžå¯æ¬ ã§ãã
- ããã¹ã ãŒãºãªãŠãŒã¶ãŒäœéš: äžæå¯èœãªã¬ã³ããªã³ã°ã¯ãã¢ãã¡ãŒã·ã§ã³ããã©ã³ãžã·ã§ã³ãããæµæ¢ã«ãªãããšãæå³ãããã©ãŒã æ€èšŒãšã©ãŒã®ãããªéèŠãªæŽæ°ã¯ãä»ã®éèŠåºŠã®äœãã¿ã¹ã¯ãå®äºããã®ãåŸ ããã«å³åº§ã«è¡šç€ºã§ããŸãã
- ããè¯ããªãœãŒã¹å©çš: ã¹ã±ãžã¥ãŒã©ã¯ããã€ãã©ã®ããã«ã¬ã³ããªã³ã°ãããã«ã€ããŠããè³¢æãªæ±ºå®ãäžãããšãã§ããããã€ã¹ãªãœãŒã¹ã®ããå¹ççãªäœ¿çšã«ã€ãªãããŸããããã¯ãã¢ãã€ã«ããã€ã¹ã®ããããªãŒå¯¿åœãå€ãããŒããŠã§ã¢ã§ã®ããã©ãŒãã³ã¹ã«ãšã£ãŠéèŠã§ãã
- 匷åããããŠãŒã¶ãŒç¶æç: äžè²«ããŠã¹ã ãŒãºã§å¿çæ§ã®é«ãã¢ããªã±ãŒã·ã§ã³ã¯ããŠãŒã¶ãŒã®ä¿¡é Œãšæºè¶³åºŠãæ§ç¯ããäžçäžã§ããè¯ãç¶æçã«ã€ãªãããŸããé å»¶ãããå¿çããªãã¢ããªã¯ããŠãŒã¶ãŒãããã«æŸæ£ããå¯èœæ§ããããŸãã
- è€é㪠UI ãžã®ã¹ã±ãŒã©ããªãã£: ã¢ããªã±ãŒã·ã§ã³ãæé·ããããåçãªæ©èœãçµã¿èŸŒãŸããã«ã€ããŠãFiber ã®ã¢ãŒããã¯ãã£ã¯ãããã©ãŒãã³ã¹ãç ç²ã«ããããšãªãè€éãªã¬ã³ããªã³ã°èŠæ±ã管çããããã®åŒ·åºãªåºç€ãæäŸããŸãã
ããšãã°ãã°ããŒãã«ãªãã£ã³ããã¯ã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠããªã¢ã«ã¿ã€ã ã®åžå ŽããŒã¿æŽæ°ãå³åº§ã«è¡šç€ºãããããã«ããªããããŠãŒã¶ãŒãé å»¶ãªãã§ã€ã³ã¿ãŒãã§ãŒã¹ãããã²ãŒãã§ããããã«ããããšã¯äžå¯æ¬ ã§ããFiber ãšãã®é¢é£ã¡ã«ããºã ã¯ãããå¯èœã«ããŸãã
èŠããŠããã¹ãäž»èŠãªæŠå¿µ
- Fiber ããŒã: React ã«ãããæ°ãããããæè»ãªäœæ¥åäœãäžæå¯èœãªã¬ã³ããªã³ã°ãå¯èœã«ããŸãã
- ã¯ãŒã¯ã«ãŒã: Fiber ããªãŒããã©ããã¬ã³ããªã³ã°äœæ¥ãå®è¡ãã倿Žãã³ãããããã³ã¢ããã»ã¹ã
- ã¬ã³ããªã³ã°ãã§ãŒãº: React ãäœæ¥äžããªãŒãæ§ç¯ãããäžæå¯èœãªãã§ãŒãºã
- ã³ããããã§ãŒãº: DOM 倿Žãšå¯äœçšãé©çšããããåæçã§äžæäžå¯èœãªãã§ãŒãºã
- React ã¹ã±ãžã¥ãŒã©: React ã¿ã¹ã¯ã®å®è¡ã管çããåªå é äœãä»ãããã©ãŠã¶ãšé£æºãã責任ãè² ãã©ã€ãã©ãªã
- åªå 床ãã¥ãŒ: ã¹ã±ãžã¥ãŒã©ãã¿ã¹ã¯ã®ç·æ¥åºŠã«åºã¥ããŠäžŠã¹æ¿ããããã«äœ¿çšããããŒã¿æ§é ãéèŠãªæŽæ°ãæåã«åŠçãããããšãä¿èšŒããŸãã
- åæå®è¡ã¬ã³ããªã³ã°: React ãã¬ã³ããªã³ã°ã¿ã¹ã¯ãäžæåæ¢ãåéãåªå é äœä»ãããèœåãããå¿çæ§ã®é«ãã¢ããªã±ãŒã·ã§ã³ã«ã€ãªãããŸãã
çµè«
React Fiber ã¯ãReact ãã¬ã³ããªã³ã°ãåŠçããæ¹æ³ã«ãããŠå€§ããªé²æ©ã衚ããŠããŸããå€ãã¹ã¿ãã¯ããŒã¹ã®ãªã³ã³ãµã€ãªãšãŒã·ã§ã³ããäžæå¯èœã§åå ¥å¯èœãª Fiber ã¢ãŒããã¯ãã£ã«çœ®ãæããåªå 床ãã¥ãŒã掻çšããæŽç·Žãããã¹ã±ãžã¥ãŒã©ãšçµ±åããããšã«ãããReact ã¯çã®åæå®è¡ã¬ã³ããªã³ã°èœåãè§£ãæŸã¡ãŸãããããã¯ãããããã©ãŒãã³ã¹ãé«ãå¿çæ§ã®é«ãã¢ããªã±ãŒã·ã§ã³ã«ã€ãªããã ãã§ãªããããã€ã¹ããããã¯ãŒã¯æ¡ä»¶ããŸãã¯æè¡çç¿ç床ã«é¢ä¿ãªãã倿§ãªã°ããŒãã«ãªãŒãã£ãšã³ã¹ã«ãšã£ãŠããå ¬å¹³ãªãŠãŒã¶ãŒäœéšãæäŸããŸãããããã®æ ¹æ¬çãªã¡ã«ããºã ãçè§£ããããšã¯ãçŸä»£ã® Web ã®ããã®é«å質ã§ããã©ãŒãã³ã¹ã®é«ãããŠãŒã¶ãŒãã¬ã³ããªãŒãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããšãç®æããã¹ãŠã®éçºè ã«ãšã£ãŠäžå¯æ¬ ã§ãã
React ã§ã®æ§ç¯ãç¶ããéã«ããããã®æŠå¿µã念é ã«çœ®ããŠãã ããããããã¯ãäžçäžã®äž»èŠãª Web ã¢ããªã±ãŒã·ã§ã³ããæåŸ ãããã¹ã ãŒãºã§ã·ãŒã ã¬ã¹ãªäœéšã®èåŸã«ããéããªããŒããŒã§ããFiberãã¹ã±ãžã¥ãŒã©ãã€ã³ããªãžã§ã³ããªåªå é äœä»ãã®åãæŽ»çšããããšã§ããã¹ãŠã®å€§éžã®ãŠãŒã¶ãŒãåã°ããã¢ããªã±ãŒã·ã§ã³ãä¿èšŒã§ããŸãã